package b3_priorityqueue;
import a4_queue.Queue;
import java.util.Arrays;
/**
 * 测试优先级队列，并和JDK中的优先级队列做比较
 */
public class TestPriorityQueue_1 {
    public static void main(String[] args) {

        int[] data = {5,12,14,6,1,9};

        /*************************/
        //使用自定义Queue<>接口
        Queue<Integer> queue = new PriorityQueue();
        for(int i : data){
            queue.offer(i);
        }
        int[] ret = new int[data.length];
        for(int i=0; i< data.length; i++){
            //基于最大堆的优先级队列出队操作
            ret[i] = queue.poll();
        }
        // [14, 12, 9, 6, 5, 1]
        System.out.println(Arrays.toString(ret));

        /****************************/
        //使用JDK内置接口
        java.util.Queue<Integer> queue2 = new java.util.PriorityQueue<>();
        for(int i : data){
            queue2.offer(i);
        }
        for(int i=0; i< data.length; i++){
            //基于最小堆的优先级队列出队操作
            ret[i] = queue2.poll();
        }
        // [1, 5, 6, 9, 12, 14]
        System.out.println(Arrays.toString(ret));
    }
}
